<html>
<head><meta charset="utf-8"><title>I-prioritize #74713 ICE: escaping bound vars in predicate · t-compiler/wg-prioritization/alerts · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/245100-t-compiler/wg-prioritization/alerts/index.html">t-compiler/wg-prioritization/alerts</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/245100-t-compiler/wg-prioritization/alerts/topic/I-prioritize.20.2374713.20ICE.3A.20escaping.20bound.20vars.20in.20predicate.html">I-prioritize #74713 ICE: escaping bound vars in predicate</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="204913382"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/245100-t-compiler/wg-prioritization/alerts/topic/I-prioritize%20%2374713%20ICE%3A%20escaping%20bound%20vars%20in%20predicate/near/204913382" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> triagebot <a href="https://rust-lang.github.io/zulip_archive/stream/245100-t-compiler/wg-prioritization/alerts/topic/I-prioritize.20.2374713.20ICE.3A.20escaping.20bound.20vars.20in.20predicate.html#204913382">(Jul 24 2020 at 13:15)</a>:</h4>
<p><span class="user-group-mention" data-user-group-id="3111">@WG-prioritization/alerts</span> issue <a href="https://github.com/rust-lang/rust/issues/74713">#74713</a> has been requested for prioritization.</p>
<h1><a href="https://forge.rust-lang.org/compiler/prioritization/procedure.html#assign-priority-to-unprioritized-issues-with-i-prioritize-label">Procedure</a></h1>
<ul>
<li>Priority?</li>
<li>Regression?</li>
<li>Notify people/groups?</li>
<li>Needs <code>I-nominated</code>?</li>
</ul>



<a name="204913395"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/245100-t-compiler/wg-prioritization/alerts/topic/I-prioritize%20%2374713%20ICE%3A%20escaping%20bound%20vars%20in%20predicate/near/204913395" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> DPC <a href="https://rust-lang.github.io/zulip_archive/stream/245100-t-compiler/wg-prioritization/alerts/topic/I-prioritize.20.2374713.20ICE.3A.20escaping.20bound.20vars.20in.20predicate.html#204913395">(Jul 24 2020 at 13:15)</a>:</h4>
<p>ICE on stable hence prioritised</p>



<a name="204997943"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/245100-t-compiler/wg-prioritization/alerts/topic/I-prioritize%20%2374713%20ICE%3A%20escaping%20bound%20vars%20in%20predicate/near/204997943" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/245100-t-compiler/wg-prioritization/alerts/topic/I-prioritize.20.2374713.20ICE.3A.20escaping.20bound.20vars.20in.20predicate.html#204997943">(Jul 25 2020 at 10:10)</a>:</h4>
<p>This is a slight variation of <a href="https://github.com/rust-lang/rust/issues/56445">#56445</a> and will probably be fixed while working on <code>min_const_generics</code>.</p>
<p>We can probably either close this as a duplicate or also assign <code>P-high</code> as it is a slightly different example, even if the cause should be identical</p>



<a name="205068019"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/245100-t-compiler/wg-prioritization/alerts/topic/I-prioritize%20%2374713%20ICE%3A%20escaping%20bound%20vars%20in%20predicate/near/205068019" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Léo Lanteri Thauvin <a href="https://rust-lang.github.io/zulip_archive/stream/245100-t-compiler/wg-prioritization/alerts/topic/I-prioritize.20.2374713.20ICE.3A.20escaping.20bound.20vars.20in.20predicate.html#205068019">(Jul 26 2020 at 21:24)</a>:</h4>
<p>IIUC this only happens in a failing path? Or am I missing something?</p>



<a name="205068032"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/245100-t-compiler/wg-prioritization/alerts/topic/I-prioritize%20%2374713%20ICE%3A%20escaping%20bound%20vars%20in%20predicate/near/205068032" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Léo Lanteri Thauvin <a href="https://rust-lang.github.io/zulip_archive/stream/245100-t-compiler/wg-prioritization/alerts/topic/I-prioritize.20.2374713.20ICE.3A.20escaping.20bound.20vars.20in.20predicate.html#205068032">(Jul 26 2020 at 21:25)</a>:</h4>
<p>If this only happens in a failing path then we should probably assign <code>P-medium</code> or even <code>P-low</code> given how old this regression is</p>



<a name="205068033"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/245100-t-compiler/wg-prioritization/alerts/topic/I-prioritize%20%2374713%20ICE%3A%20escaping%20bound%20vars%20in%20predicate/near/205068033" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/245100-t-compiler/wg-prioritization/alerts/topic/I-prioritize.20.2374713.20ICE.3A.20escaping.20bound.20vars.20in.20predicate.html#205068033">(Jul 26 2020 at 21:25)</a>:</h4>
<p>it's complicated</p>



<a name="205068078"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/245100-t-compiler/wg-prioritization/alerts/topic/I-prioritize%20%2374713%20ICE%3A%20escaping%20bound%20vars%20in%20predicate/near/205068078" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/245100-t-compiler/wg-prioritization/alerts/topic/I-prioritize.20.2374713.20ICE.3A.20escaping.20bound.20vars.20in.20predicate.html#205068078">(Jul 26 2020 at 21:26)</a>:</h4>
<p>so we don't supply the parent generics to arrays in function definitions and where bounds at all, so in this case it can currently never work</p>



<a name="205068117"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/245100-t-compiler/wg-prioritization/alerts/topic/I-prioritize%20%2374713%20ICE%3A%20escaping%20bound%20vars%20in%20predicate/near/205068117" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/245100-t-compiler/wg-prioritization/alerts/topic/I-prioritize.20.2374713.20ICE.3A.20escaping.20bound.20vars.20in.20predicate.html#205068117">(Jul 26 2020 at 21:28)</a>:</h4>
<div class="codehilite"><pre><span></span><code><span class="k">fn</span> <span class="nf">bug</span><span class="o">&lt;</span><span class="na">&#39;a</span><span class="o">&gt;</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="kd">let</span><span class="w"> </span><span class="n">_</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[();</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">        </span><span class="kd">let</span><span class="w"> </span><span class="n">_</span>: <span class="kp">&amp;</span><span class="na">&#39;a</span><span class="w"> </span><span class="p">();</span><span class="w"></span>
<span class="w">        </span><span class="mi">3</span><span class="w"></span>
<span class="w">    </span><span class="p">}];</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>


<p>has the same ICE but should theoretically compile rn because we do allow the parent generics in repeat expressions and enum discriminants</p>



<a name="205068139"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/245100-t-compiler/wg-prioritization/alerts/topic/I-prioritize%20%2374713%20ICE%3A%20escaping%20bound%20vars%20in%20predicate/near/205068139" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/245100-t-compiler/wg-prioritization/alerts/topic/I-prioritize.20.2374713.20ICE.3A.20escaping.20bound.20vars.20in.20predicate.html#205068139">(Jul 26 2020 at 21:28)</a>:</h4>
<p>So that's plainly a bug with const generics rn</p>



<a name="205068195"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/245100-t-compiler/wg-prioritization/alerts/topic/I-prioritize%20%2374713%20ICE%3A%20escaping%20bound%20vars%20in%20predicate/near/205068195" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Léo Lanteri Thauvin <a href="https://rust-lang.github.io/zulip_archive/stream/245100-t-compiler/wg-prioritization/alerts/topic/I-prioritize.20.2374713.20ICE.3A.20escaping.20bound.20vars.20in.20predicate.html#205068195">(Jul 26 2020 at 21:30)</a>:</h4>
<blockquote>
<p>has the same ICE but should theoretically compile rn because we do allow the parent generics in repeat expressions and enum discriminants</p>
</blockquote>
<p>I'm assuming it should compile with <code>#![feature(const_generics)]</code>?</p>



<a name="205068197"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/245100-t-compiler/wg-prioritization/alerts/topic/I-prioritize%20%2374713%20ICE%3A%20escaping%20bound%20vars%20in%20predicate/near/205068197" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/245100-t-compiler/wg-prioritization/alerts/topic/I-prioritize.20.2374713.20ICE.3A.20escaping.20bound.20vars.20in.20predicate.html#205068197">(Jul 26 2020 at 21:30)</a>:</h4>
<p>yeah</p>



<a name="205068212"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/245100-t-compiler/wg-prioritization/alerts/topic/I-prioritize%20%2374713%20ICE%3A%20escaping%20bound%20vars%20in%20predicate/near/205068212" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/245100-t-compiler/wg-prioritization/alerts/topic/I-prioritize.20.2374713.20ICE.3A.20escaping.20bound.20vars.20in.20predicate.html#205068212">(Jul 26 2020 at 21:31)</a>:</h4>
<p>I think it should compile even without <code>#![feature(const_generics)]</code></p>



<a name="205068258"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/245100-t-compiler/wg-prioritization/alerts/topic/I-prioritize%20%2374713%20ICE%3A%20escaping%20bound%20vars%20in%20predicate/near/205068258" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Léo Lanteri Thauvin <a href="https://rust-lang.github.io/zulip_archive/stream/245100-t-compiler/wg-prioritization/alerts/topic/I-prioritize.20.2374713.20ICE.3A.20escaping.20bound.20vars.20in.20predicate.html#205068258">(Jul 26 2020 at 21:32)</a>:</h4>
<p>Because it is used for an array?</p>



<a name="205068265"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/245100-t-compiler/wg-prioritization/alerts/topic/I-prioritize%20%2374713%20ICE%3A%20escaping%20bound%20vars%20in%20predicate/near/205068265" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/245100-t-compiler/wg-prioritization/alerts/topic/I-prioritize.20.2374713.20ICE.3A.20escaping.20bound.20vars.20in.20predicate.html#205068265">(Jul 26 2020 at 21:32)</a>:</h4>
<blockquote>
<p>it's complicated</p>
</blockquote>
<p>^</p>



<a name="205068269"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/245100-t-compiler/wg-prioritization/alerts/topic/I-prioritize%20%2374713%20ICE%3A%20escaping%20bound%20vars%20in%20predicate/near/205068269" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Léo Lanteri Thauvin <a href="https://rust-lang.github.io/zulip_archive/stream/245100-t-compiler/wg-prioritization/alerts/topic/I-prioritize.20.2374713.20ICE.3A.20escaping.20bound.20vars.20in.20predicate.html#205068269">(Jul 26 2020 at 21:32)</a>:</h4>
<p><span class="user-mention silent" data-user-id="216206">lcnr</span> <a href="#narrow/stream/245100-t-compiler.2Fwg-prioritization.2Falerts/topic/I-prioritize.20.2374713.20ICE.3A.20escaping.20bound.20vars.20in.20predicate/near/205068265">said</a>:</p>
<blockquote>
<blockquote>
<p>it's complicated</p>
</blockquote>
<p>^</p>
</blockquote>
<p>I'm not ready for const generics yet then x)</p>



<a name="205068281"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/245100-t-compiler/wg-prioritization/alerts/topic/I-prioritize%20%2374713%20ICE%3A%20escaping%20bound%20vars%20in%20predicate/near/205068281" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Léo Lanteri Thauvin <a href="https://rust-lang.github.io/zulip_archive/stream/245100-t-compiler/wg-prioritization/alerts/topic/I-prioritize.20.2374713.20ICE.3A.20escaping.20bound.20vars.20in.20predicate.html#205068281">(Jul 26 2020 at 21:33)</a>:</h4>
<p>What would you suggest? Do you think this should be <code>P-high</code>?</p>



<a name="205068285"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/245100-t-compiler/wg-prioritization/alerts/topic/I-prioritize%20%2374713%20ICE%3A%20escaping%20bound%20vars%20in%20predicate/near/205068285" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/245100-t-compiler/wg-prioritization/alerts/topic/I-prioritize.20.2374713.20ICE.3A.20escaping.20bound.20vars.20in.20predicate.html#205068285">(Jul 26 2020 at 21:33)</a>:</h4>
<p>the repeat length is a concrete value here, so that should just be equal to <code>[(); 3]</code> on stable</p>



<a name="205068334"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/245100-t-compiler/wg-prioritization/alerts/topic/I-prioritize%20%2374713%20ICE%3A%20escaping%20bound%20vars%20in%20predicate/near/205068334" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/245100-t-compiler/wg-prioritization/alerts/topic/I-prioritize.20.2374713.20ICE.3A.20escaping.20bound.20vars.20in.20predicate.html#205068334">(Jul 26 2020 at 21:34)</a>:</h4>
<p>Hmm, so without considering how we might fix this, this is still an ICE which is fairly easy to hit so it should be <code>P-high</code></p>



<a name="205370110"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/245100-t-compiler/wg-prioritization/alerts/topic/I-prioritize%20%2374713%20ICE%3A%20escaping%20bound%20vars%20in%20predicate/near/205370110" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> triagebot <a href="https://rust-lang.github.io/zulip_archive/stream/245100-t-compiler/wg-prioritization/alerts/topic/I-prioritize.20.2374713.20ICE.3A.20escaping.20bound.20vars.20in.20predicate.html#205370110">(Jul 29 2020 at 15:13)</a>:</h4>
<p>Issue <a href="https://github.com/rust-lang/rust/issues/74713">#74713</a>'s prioritization request has been removed.</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>